const formatPagination = (req, res, next) => {
  // 保存原始的res.json方法
  const originalJson = res.json;

  // 添加分页方法
  res.paginate = function(data, { total, page, size }) {
    return originalJson.call(this, {
        list: data,
        total,          // 总条数
        page,           // 当前页码
        size,           // 每页条数
        totalPages: Math.ceil(total / size)  // 总页数
    });
  };

  // 获取分页参数的辅助方法
  req.getPaginationParams = function() {
    const page = parseInt(this.query.page) || 1;
    const size = parseInt(this.query.size) || 10;
    const offset = (page - 1) * size;

    return {
      page,
      size,
      offset
    };
  };

  next();
};

module.exports = formatPagination;
